﻿using System; // 需引入System命名空间，用于Math类的方法（Math.Sqrt、Math.Round、Math.PI）

public class Circle
{
    // 私有数据成员：圆心x坐标、y坐标、半径r（文档1-1要求）
    private double x, y, r;

    /// <summary>
    /// SetValue()方法：给x、y、r赋值（文档1-1要求）
    /// </summary>
    /// <param name="x">圆心x坐标</param>
    /// <param name="y">圆心y坐标</param>
    /// <param name="r">半径</param>
    public void SetValue(double x, double y, double r)
    {
        this.x = x;
        this.y = y;
        this.r = r;
    }

    /// <summary>
    /// GetArea()方法：计算圆的面积（面积公式：π×r²），结果精确到小数点后二位（文档1-1、1-10、1-12要求）
    /// </summary>
    /// <returns>面积（double类型）</returns>
    public double GetArea()
    {
        double area = Math.PI * r * r; // 圆的面积公式
        return Math.Round(area, 2); // 用Math.Round()精确到小数点后二位（文档1-12、1-13要求）
    }

    /// <summary>
    /// GetPerimeter()方法：计算圆的周长（周长公式：2×π×r），结果精确到小数点后二位（文档1-1、1-10要求）
    /// </summary>
    /// <returns>周长（double类型）</returns>
    public double GetPerimeter()
    {
        double perimeter = 2 * Math.PI * r; // 圆的周长公式
        return Math.Round(perimeter, 2); // 精确到小数点后二位
    }

    /// <summary>
    /// GetDistance()方法：计算圆心到原点（0,0）的距离（距离公式：√(x²+y²)），结果精确到小数点后二位（文档1-1、1-12要求）
    /// </summary>
    /// <returns>圆心到原点的距离（double类型）</returns>
    public double GetDistance()
    {
        double distance = Math.Sqrt(x * x + y * y); // 用Math.Sqrt()求平方根（文档1-12要求）
        return Math.Round(distance, 2); // 精确到小数点后二位
    }
}